package violentRecursion;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

/**
 * @author kunkun
 * @className LeetCode_118
 * @Description 杨辉三角
 * @date 2025/3/17 15:05
 */
public class LeetCode_118 {

    @Test
    public void test(){
        generate(5);
    }

    //动态规划
    public List<List<Integer>> generate(int numRows) {
        //1. 新建返回值,设置默认值
        List<List<Integer>> lists = new ArrayList<>();
        if (numRows==1){
            ArrayList<Integer> list = new ArrayList();
            list.add(1);
            lists.add(list);
            return lists;
        }
        ArrayList<Integer> list = new ArrayList();
        list.add(1);
        lists.add(list);
        ArrayList<Integer> list1 = new ArrayList();
        list1.add(1);
        list1.add(1);
        lists.add(list1);
        //2. 逐层遍历
        for (int i = 2; i < numRows ; i++) {
            ArrayList<Integer> tempList = new ArrayList();
            for (int j = 0; j < i+1; j++) {
                if (j==0 || j==i){
                    tempList.add(1);
                }else{
                    Integer i1 = lists.get(i - 1).get(j);
                    Integer i2 = lists.get(i - 1).get(j - 1);
                    tempList.add(i1+i2);
                }
            }
            lists.add(tempList);
        }
        return lists;


    }


}
